home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-06-28 | 1.0 KB | 49 lines | [TEXT/CWIE] |
- // ConstBuffer.h
-
- #ifndef ConstBuffer_h
- #define ConstBuffer_h
-
- #ifndef ConstData_h
- #include "ConstData.h"
- #endif
- #ifndef Data_h
- #include "Data.h"
- #endif
-
- class Buffer;
-
- class ConstBuffer
- {
- private:
- ConstData space;
- ConstData unused;
-
- // not implemented:
- ConstBuffer( const ConstBuffer& );
- void operator=( const ConstBuffer& );
-
- public:
- ConstBuffer( ConstData );
-
- void Reset() { unused = space; }
- void Reset( ConstData );
-
- inline void AdvanceMark( uint32 amount )
- { unused.Shorten( amount ); }
-
- ConstData Used() const { return space.Head( UsedLength() ); }
- const ConstData& Unused() const { return unused; }
-
- uint32 TotalLength() const { return space.Length(); }
- uint32 UsedLength() const { return space.Length() - unused.Length(); }
- uint32 UnusedLength() const { return unused.Length(); }
-
- bool IsUnused() const { return unused.Length() == space.Length(); }
- bool Exhausted() const { return unused.IsEmpty(); }
-
- void operator>>( Data );
- void operator>>( Buffer& );
- };
-
- #endif
-